此刻,我以以下方式定义类构造器
import pandas as pd
data = pd.read_csv('D:\\python\\python-cisco-status.txt', delim_whitespace=True, header=None)
for index, row in data.iterrows():
if row[4] == 'administratively down' or row[4] == 'down':
print(f"Interface {row[0]} is down in ")
这对我来说很冗长和重复。鉴于TypeScript利用了一些最新的JavaScript提议,我想问一下是否有可能以某种方式清除它?
答案 0 :(得分:3)
您可以将访问修饰符添加到构造函数参数。这将使该参数也成为将使用该参数的值初始化的类字段。
class MyClass {
constructor(
public routerStore: RouterStore,
public characterStore: CharacterStore,
public characterPrivateStore: CharacterPrivateStore
) {
super()
}
}
您还可以使用Object.assign
在类上声明字段,并使用映射类型仅提取字段键(不包括方法):
type JustFieldKeys<T> = { [P in keyof T] : T[P] extends Function ? never : P }[keyof T]
class MyClass {
public routerStore!: RouterStore,
public characterStore!: CharacterStore,
public characterPrivateStore!: CharacterPrivateStore
constructor(params: Pick<MyClass, JustFieldKeys<MyClass>>) {
Object.assign(this, params);
}
}
new MyClass({
characterPrivateStore: null,
characterStore: null,
routerStore: null
})