3 ms·
What do you mean with "does not refractor"? Do you mean it doesn't compile, because it doesn't. You need to write either const testVal: MyEnum = "a" or
by Tistron 4y ago
What do you mean with "does not refractor"?
Do you mean it doesn't compile, because it doesn't. You need to write either
const testVal: MyEnum = "a"
or
const testVal = "a" as MyEnum
The latter passes typechecking with invalid values, both change automatically for me if I refractor the symbol values in VS Code.
- zdragnar 4y agoIt checks fine for me. const testVal = "a" Here, TypeScript infers that it is of type "string", and knows the value, so it is perfectly happy accepting it to ALSO be of type MyEnum. This is the problem- refactoring MyEnum means that testVal is not automatically updated, because the type is really "string" that just-so-happened to duck-type into MyEnum at the function call site. On the other hand, if MyEnum were actually an enum rather than a union of strings, this problem wouldn't have happened.