typescript - 打字稿:从对象分配成员
问题描述
我正在将现有的 JS 代码迁移到 Typescript。
假设现有的 JS 代码是这样的:
// Original JS class
class Test1 {
constructor({ foo = 'a' }) {
this.foo = foo;
}
}
我正在尝试尽可能多地使用 TypeScript 中引入的访问修饰符来定义类构造函数,以便我可以直接分配一个类成员。
// This will assign this.foo automatically.
// But the argument becomes different {foo} vs foo.
class Test2 {
public constructor(private foo: string = 'a') {}
}
但问题是现在Test2
有不同的参数,这会破坏现有代码。
我不能像这样直接从对象参数中分配成员:
// I want something like this... but error.
class Test3 {
public constructor({ private foo: string = 'a' }) {}
}
this.foo = foo
所以我的目标是在保留参数签名的同时避免使用constructor({foo})
。有没有好的解决方法?
解决方案
这似乎是打字稿的一个未解决问题,不幸的是,您将不得不执行以下操作:
class Test4 {
private foo: string;
public constructor({ foo = 'a' }) {
this.foo = foo;
}
}
推荐阅读
- bash - 以特定格式“newik”的 Sed
- ruby-on-rails - 如何设置 Travis Rspec 以测试在 Rails 应用程序中访问的只读副本
- javascript - 将数组添加到 JSON 对象(如果它不存在)
- keyboard - AutoHotkey 中未使用的组合键列表
- sql - 尝试创建 SQL 表的备份
- sql-server - 不泄露密码的 VBA ADO 连接
- ios - 将更多数据附加到公共类中定义的 api
- redux - Flutter Redux - 处理导航到中间件中的屏幕
- c# - 如何获取应用程序进程名称c#
- amazon-web-services - AWS boto3:UnknownServiceError:未知服务:'apigatewaymanagementapi'