首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >typescript中的泛型对象类型

typescript中的泛型对象类型
EN

Stack Overflow用户
提问于 2016-11-17 04:08:51
回答 3查看 49.9K关注 0票数 47

在typescript中,有没有办法给变量分配一个泛型对象类型。这就是我所说的“泛型对象类型”

代码语言:javascript
复制
let myVariable: GenericObject = 1 // Should throw an error
                              = 'abc' // Should throw an error
                              = {} // OK
                              = {name: 'qwerty'} //OK

也就是说,它应该只允许将javascript对象分配给变量,而不允许其他类型的数据(数字、字符串、布尔值)

EN

回答 3

Stack Overflow用户

发布于 2016-11-17 04:17:35

当然:

代码语言:javascript
复制
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

(code in playground)

票数 80
EN

Stack Overflow用户

发布于 2019-08-31 04:45:15

Typescript 2.1+还有一个utility typeRecord<K, T>,您可以使用它来代替您自己的定义

代码语言:javascript
复制
const myObj: Record<string, any>;

当我可以给key起一个有意义的名字时,我喜欢使用top答案中描述的风格,但如果它不是那么明显或必要,Record是一个很好的选择。

票数 40
EN

Stack Overflow用户

发布于 2017-05-24 03:10:04

从TypeScript 2.2开始,您可以使用

代码语言:javascript
复制
let myVariable: object;

编辑:下面是一个例子:

代码语言:javascript
复制
let myVariable: object = { fun: 1 };
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40641370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档