如何通过Interface类型填充对象?TypeScript语法报错求助
修复你的TypeScript IDate接口对象赋值错误
首先,你的代码里有几个明显的语法和逻辑错误,不止是next字段的问题,我给你逐一拆解并修正:
错误点分析
- 类型声明语法错误:你用了
let obj<IDate>,这是泛型的写法,而给变量指定接口类型应该用冒号:,正确的写法是let obj: IDate。 - 方法未调用:
result.getFullYear是Date对象的方法,你只是引用了这个函数本身,没有执行它获取年份值,必须加上括号(),prev和next里的year字段都犯了这个错误。
修正后的代码
interface IDate { prev: { day: number; month: number; year: number; }, next: { day: number; month: number; year: number; } } // 假设result是一个Date实例 const result = new Date(); let obj: IDate = { prev: { day: result.getDate(), month: result.getMonth() + 1, year: result.getFullYear() // 这里加上()调用方法 }, next: { day: result.getDate(), month: result.getMonth() + 1, year: result.getFullYear() // 同样加上() } };
另外,如果你想使用类型断言的方式(比如当TypeScript无法自动推断类型时),也可以这样写:
let obj = { // ... 同上的对象内容 } as IDate;
这样代码就能正常运行了,之前的语法错误和逻辑问题都被修复了。
内容的提问来源于stack exchange,提问作者Karabah
相关产品推荐
相关产品推荐

