[Typescript] Excess property checking
TypeScript helps us catch a particular type of problem around the use of object literals. Let’s look at the situation where the error arises:
// @errors: 2345
function printCar(car: {
make: string
model: string
year: number
chargeVoltage?: number
}) {
// implementation removed for simplicity
}
printCar({
make: "Tesla",
model: "Model 3",
year: 2020,
chargeVoltage: 220,
color: "RED", // <0------ EXTRA PROPERTY
})
The important part of this error message is:
Object literal may only specify known properties, and ‘color’ does not exist in type <the type the function expects>
In this situation, within the body of the printCar
function, we cannot access the color
property since it’s not part of the argument type. Thus, we’re defining a property on this object, that we have no hope of safely accessing later on!
Try fixing this three ways in the TypeScript playground:
- Remove the
color
property from the object - Add a
color: string
to the function argument type - Create a variable to hold this value, and then pass the variable into the
printCar
function
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-07-25 [SAA + SAP] 09. DynamoDB
2018-07-25 [Vue @Component] Write Vue Functional Components Inline
2017-07-25 [Nuxt] Display Vuex Data Differently in Each Page of Nuxt and Vue.js
2017-07-25 [Nuxt] Update State with Vuex Actions in Nuxt.js
2017-07-25 [Nuxt] Use Vuex Actions to Delete Data from APIs in Nuxt and Vue.js
2017-07-25 [Nuxt] Build a Vue.js Form then use Vuex Actions to Post to an API in Nuxt
2017-07-25 [Nuxt] Build a Navigation Component in Vue.js and Use in a Nuxt Layout