我们的 TypeScript 代码库中有“安全”字符串:
button.on('click', () => {}); // mistyping 'click' is an error
但也有不安全的字符串:
_.omit(obj, 'a'); // no error if I mistype 'a'
有没有办法列出这样的字符串?我猜 TypeScript 有这方面的知识,但我不确定是否可以从中挖掘出来。
最佳答案
您可以定义仅包含安全值的类型:
export type SafeValue = 'foo' | 'bar' | 'baz';
export function omit(param: SafeValue) {
...
}
omit('a'); // error
如果你想知道 'a' 是否是 obj
的属性,你可以这样做:
export function omit<T>(object: T, property: keyof T) {
payload[value]; // this statement is safe
}
例如,如果您有 Person 类:
export class Person {
name: string;
age: number;
}
语句 keyof Person
将等于 'name' | “年龄”
。
const person = new Person();
omit<Person>(person, 'age'); // won't emit any error
omit<Person>(person, 'paws'); // will emit an error:
Argument of type '"paws"' is not assignable to parameter of type '"name" | "age"'
关于typescript - TypeScript 可以告诉我代码库中的哪些字符串是 "unsafe"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58326975/