Typescript 获取类型化对象中属性或字段的名称

Typescript 获取类型化对象中属性或字段的名称,typescript,Typescript,我有一个具有只读属性的可注入angular类。所以我不能控制这个类的初始化。该类应该在库中使用。此库的使用者可以访问这些属性,但不允许他们修改这些属性 @Injectable() export class MyState { readonly requestToken: string; } 库通过技巧写入属性 self.state[<any>"requestToken"] = requestToken; 您无法从编译器中获取属性的名称,但是,您可以使用keyof,确保如果名

我有一个具有只读属性的可注入angular类。所以我不能控制这个类的初始化。该类应该在库中使用。此库的使用者可以访问这些属性,但不允许他们修改这些属性

@Injectable()
export class MyState {
   readonly requestToken: string;
}
库通过技巧写入属性

self.state[<any>"requestToken"] = requestToken;

您无法从编译器中获取属性的名称,但是,您可以使用
keyof
,确保如果名称更改,您将获得错误:

const requestTokenName: keyof MyState = "requestToken"; // if requestToken is renamed it will cause an error here.
self.state[<any>requestTokenName] = requestToken;
const requestTokenName:keyof MyState=“requestToken”//如果重命名requestToken,将在此处导致错误。 self.state[requestTokenName]=requestToken;
很抱歉,请问requestTokenName在哪里使用,密钥来自哪里?@stephan.peters Wops,对不起,我最初使用了
key
,然后将其重命名,但没有在任何地方都这样做,编辑
const requestTokenName: keyof MyState = "requestToken"; // if requestToken is renamed it will cause an error here.
self.state[<any>requestTokenName] = requestToken;