Typescript中动态为对象赋值

过去给JavaScript的对象赋值,形式为:

let test = {};

obj.prop = 123;

但是在TypeScript中,这会产生一个错误:

类型“ {}”的值不存在属性“ prop

对于TypeScript来说有严格的类型检测,想要给其中的对象赋值,可以使用接口的方式:

一.

export interface IDrawDQG {
  subdivFactor?: number
  DQGStyle?: number
  isDrawSurface?: boolean
  [key: string]: any
}

通过设置可选属性和必传属性能很好的规范传入参数,也可以根据后续开发工作灵活在某的地方添加需要的键值对,个人比较推荐这种方法,因为看起来很规范并且便于维护和更新新的属性

二.

let drawDQGOptions: {[key:string]:any} = {}

对于临时使用的对象,可以采用这种形式

实际上动态赋值还可以采用泛型的形式,在下次一的文章中也会和大家分享,欢迎大家讨论,有问题还请大家指出一起解决

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeScript是一种静态类型的编程语言,因此在进行赋值操作时需要考虑变量类型的一致性。 1. 基本类型赋值 基本类型包括number、string、boolean等,赋值时需要确保类型一致。 ```typescript let num: number = 123; let str: string = "hello"; let bool: boolean = true; ``` 2. 数组赋值 数组可以使用[]或Array<>的方式定义,赋值时需要确保数组元素类型一致。 ```typescript let arr1: number[] = [1, 2, 3]; let arr2: Array<number> = [1, 2, 3]; let arr3: string[] = ["hello", "world"]; let arr4: Array<string> = ["hello", "world"]; ``` 3. 对象赋值 对象可以使用{}或interface的方式定义,赋值时需要确保对象属性类型一致。 ```typescript let obj1: {name: string, age: number} = {name: "Tom", age: 18}; interface Person { name: string; age: number; } let obj2: Person = {name: "Tom", age: 18}; ``` 4. 函数赋值 函数可以使用() => {}或function的方式定义,赋值时需要确保函数参数类型和返回值类型一致。 ```typescript let fn1: (x: number, y: number) => number = function(x: number, y: number): number {return x + y}; function fn2(x: number, y: number): number {return x + y}; let fn3: (x: string, y: string) => string = function(x: string, y: string): string {return x + y}; function fn4(x: string, y: string): string {return x + y}; ``` 5. 类赋值 类可以使用class关键字定义,赋值时需要使用new关键字创建实例。 ```typescript class Animal { name: string; constructor(name: string) { this.name = name; } sayHello() { console.log(`Hello, I'm ${this.name}.`); } } let dog: Animal = new Animal("Dog"); dog.sayHello(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值