SequelizeCommonJSNode.jsTypeScript类型系统模块系统

如何在不引入相关模块的情况下获取类型?

比如说,我想在前端代码中引入模型,但是模型的代码其实是 extends Sequelize.Model 的,那么我应该怎么获取到模型的类型,却又避免引入 sequelize 呢?(实际上前端也是无法引入 sequelize 的,因为它依赖很多 C++ 的包)

Colliot6/15/2018, 10:56:38 PM

经过试验,实际上只需要 export TypeOf<T> = T 然后在前端代码中只使用 TypeOf<Question> 就好(如果模型是 Question)。

TS 真是太美妙了!

Colliot6/16/2018, 5:33:13 AM

预览:

取消

其他地方

Colliot 回复了 JetBrains 系 IDE 如何在已经打开一个文件且已经分屏的情况下在另一个部分打开同一个文件?

我最近在用一种似乎可行的方式,就是把文件从文件列表中拖动到 panel 上。

nickname 回复了 JetBrains 系 IDE 如何在已经打开一个文件且已经分屏的情况下在另一个部分打开同一个文件?

see this How to create two editor panes for the same file? ttps://stackoverflow.com/q/1846565/8590320

Colliot 回复了 净土是不是已经凉了

有,我正在火热开发中,只是时间有点不够。

Colliot 回复了 一个重大的消息——本站的 Angular 版本不再继续开发,将会用 React 「重新」开发

现在计划可能又变,可能还可以抢救一会儿……

Colliot 回复了 一个重大的消息——本站的 Angular 版本不再继续开发,将会用 React 「重新」开发

Angular 版本的源码会在彻底用 React 重写完之后开放,作为血与泪的纪念,作为反面教材。此生不再碰 Angular。

Colliot 回复了 在 TypeScript 中提取两个类型的公共属性

fdasfasdfasdasfdsfasdfasdfsdfagfdsgsfdgsfdgsfdgsfdsfdsfdg

zuozijian3720 回复了 在 TypeScript 中提取两个类型的公共属性

type A = { a: number b: string

pe B = { a: string c: string

pe C = { a: number c: string

pe NeverO = { [key: string]: never } pe In<A, B> = ({ [K in keyof A]: K } & NeverO)[keyof B] pe U<A, B> = { [K in In<A, B>]: (A & NeverO)[K] | (B & NeverO)[K]

pe D = U<A, B>

pe D = { a: number | string;

pe E = U<A, C>

pe E = { a: number;

/

Colliot 回复了 在 TypeScript 中提取两个类型的公共属性

不过倒是对我使用 conditional type 提了一个醒。

Colliot 回复了 在 TypeScript 中提取两个类型的公共属性

很强,用到了 conditional type,但是我可能用不了,因为 Angular 还不支持这么高的 TS 版本……

zuozijian3720 回复了 在 TypeScript 中提取两个类型的公共属性

type A = { a: number b: string

pe B = { a: string c: string

pe C = { a: number c: string

pe In<A, B> = A extends B ? A : never pe U<A, B> = { [K in In<keyof A, keyof B>]: A[K] extends B[K] ? B[K] extends A[K] ? A[K] : never : never

pe D = U<A, B>

pe D = { a: never;

pe E = U<A, C>

pe E = { a: number;

/