gpt4 book ai didi

angular - ngrx select 字符串是什么类型?

转载 作者:太空狗 更新时间:2023-10-29 17:56:03 25 4
gpt4 key购买 nike

我想说我在 Typescript 和 Angular(包括 ngrx)方面都处于初学者水平。

我正在努力思考 Store 类的 select 方法如何接受字符串文字作为参数。这是代码:

export interface AppState {
readonly tutorial: Tutorial[];
}

export class ReadComponent {

constructor(private store: Store<AppState>) {
this.tutorials = store.select('tutorial');
}
}

现在,我看到 AppState 类有一个 tutorial 属性,这似乎是调用 store.select('tutorial') 的目的,但是如何呢?如果我更改传递给 select ex 的文字怎么办? store.select('yadayada'),编译器发出错误Argument of type '"yadayada"' is not assignable to parameter of type '"tutorial"。 “教程”和“yadayada”类型如何?为什么编译器将字符串文字作为类型?

最佳答案

它将其推断为存储对象类型的键,并可以从中推断出值类型。例如,您可以定义一个通用函数:

const getKey = <T>(obj: T, key: keyof T) => obj[key] ;

如果 key 不是 T 的键,它将正确推断返回类型并给出编译器错误。您可以将函数的返回值显式键入为 T[keyof T]。Typescript 泛型和类型推断非常强大。

关于angular - ngrx select 字符串是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53676651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com