在typescript中,有没有办法给变量分配一个泛型对象类型。这就是我所说的“泛型对象类型”
let myVariable: GenericObject = 1 // Should throw an error
= 'abc' // Should throw an error
= {} // OK
= {name: 'qwerty'} //OK
也就是说,它应该只允许将javascript对象分配给变量,而不允许其他类型的数据(数字、字符串、布尔值)
发布于 2016-11-17 04:17:35
当然:
type GenericObject = { [key: string]: any };
let myVariable1: GenericObject = 1; // Type 'number' is not assignable to type '{ [key: string]: any; }'
let myVariable2: GenericObject = 'abc'; // Type 'string' is not assignable to type '{ [key: string]: any; }'
let myVariable3: GenericObject = {} // OK
let myVariable4: GenericObject = {name: 'qwerty'} //OK
发布于 2019-08-31 04:45:15
Typescript 2.1+还有一个utility type,Record<K, T>
,您可以使用它来代替您自己的定义
const myObj: Record<string, any>;
当我可以给key
起一个有意义的名字时,我喜欢使用top答案中描述的风格,但如果它不是那么明显或必要,Record
是一个很好的选择。
发布于 2017-05-24 03:10:04
从TypeScript 2.2开始,您可以使用
let myVariable: object;
编辑:下面是一个例子:
let myVariable: object = { fun: 1 };
https://stackoverflow.com/questions/40641370
复制相似问题