javascript - 调用函数TS时如何更新属性值
问题描述
大家好,我想把一段JS代码改成TS代码。
JS
function newState(name){
var state ={
name : name,
age : 0
}
return state
}
function initStates() {
this.JamesState = newState('James')
this.RoyState = newState('Roy');
this.RoyState.age = 20;
}
TS
newPRYState(name){
let state = {
name : name,
age : 0
}
return state
}
initStates() {
this.JamesState = newState('James')
this.RoyState = newState('Roy');
this.RoyState.age = 20;
}
错误:键入“对象”没有属性年龄
我想要的结果是姓名:詹姆斯年龄:0
姓名:罗伊年龄:20
请告诉我如何解决这个问题
解决方案
在使用 TS 时,您需要为所有变量指定类型。定义接口并使用变量设置此类型。
interface IState {
name: string;
age: number;
}
newPRYState(name: string): IState {
let state: IState = {
name : name,
age : 0
}
return state;
}
initStates() {
this.JamesState: IState = newState('James')
this.RoyState: IState = newState('Roy');
this.RoyState.age = 20;
}
推荐阅读
- python - 我正在尝试获得一个新的硬件来响应。给出的说明很少。我需要一些帮助才能让我的代码正常工作
- exception - 如何处理 StreamSubscription 中 onData 回调的异常?
- wordpress - WP 或函数添加额外的 br 标签
- apache-nifi - 如何在 Nifi 中将属性设置为空白字符串
- javascript - Laravel - 收藏/取消收藏按钮
- android - 如何存储远程配置的默认数组?
- php - '$wpdb->get_results' 帖子显示在单独的 ccs 表中 - 需要一个表
- c# - PHP 与 C#/.NET 之间的 TripleDES 加密
- python - 如何从字典中接收裸字符串,末尾没有双引号或括号或括号?
- python - 删除嵌套列表中字符串值中的撇号