TypeScript声明变量后如何为接口类型对象补充未赋值属性
解决方案
分两种场景处理即可:
- 如果你只是要给现有config对象新增
database属性,完全不需要修改顶部的const声明const仅限制变量不能被重新赋值为新值,不会冻结对象本身的属性增改操作,而且你使用的sql.config类型本身就定义了可选的database字段,类型完全合规,直接在后续代码里加一行即可:
执行完这行后config的结构就和你预期的完全一致。config.database = "database1"; - 如果你后续需要整体重写config的整个对象值,把顶部声明的
const改成let即可const声明的变量不允许重新赋值,改成let之后就可以直接写整体赋值逻辑:- 修改顶部声明:
let config: sql.config = { user: "user1", pass: "pass1", } - 在后续代码位置直接整体赋值:
config = { user: "user1", pass: "pass1", database: "database1" }
- 修改顶部声明:
补充:如果你的TS配置开了额外的严格属性检查,给对象加属性时报错的话,可以加个简单的类型断言即可,常规项目默认配置不需要这步:
(config as sql.config).database = "database1";
内容的提问来源于stack exchange,提问作者whatwhatwhat
相关产品推荐
相关产品推荐

