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

Colliot 11 days ago

因为我实在无法忍受使用 Angular 这当孙子一般的体验了。

keyboard_arrow_down
修复了回复一个回复时,新回复不能立即展现的问题。

Colliot 12 days ago

是我设置错了一个 action 的 type。奇怪的是 TypeScript 居然没有报错,这不科学。

keyboard_arrow_down
在 TypeScript 中提取两个类型的公共属性

Colliot 04/27/2018

比如
nterface A1 { a: number; b: string;

nterface B1 { a: number; c: boolean; 想得到一个 interface C1 { a: number; 初看会觉得是 A1 & B1,但其是不是的,这玩意儿同时具有 a, b, c, 三个属性。正确的确实应该用 &,但是是对 keyof 出来的东西,如下: type BothKeyOf<A, B> = keyof A & keyof B;

ype BothFieldsOf<A, B> = { [Key in BothKeyOf<A, B>]: A[Key] & B[Key] ;

ype C = BothFieldsOf<A1, B1>;

onst a: C = {a: 1}; onst a2: C = {a: 1, b: '2'}; // 非法,多了 b onst a3: C = {}; // 非法,缺乏 a

keyboard_arrow_down
算法竞赛的正确道路是什么?

Colliot 04/26/2018

我们也许需要 at 功能

keyboard_arrow_down
每个人访问都是我的事故原因找到了

Colliot 04/26/2018

出问题的是这段代码 const serverDefaultUserState = defaultUserState; if (this.req) { const serverUserData = this.req.serverUserData; console.log('===INIT_EPIC===: ', serverUserData); const serverToken = this.req.serverToken; if (serverUserData) { serverDefaultUserState.loggedIn = true; serverDefaultUserState.loginPending = false; serverDefaultUserState.userData = serverUserData; serverDefaultUserState.token = serverToken; } } serverDefaultUserState 被赋予了 defaultUserState 的引用,其后又被修改了,导致 defaultUserState 被修改了。但是 node 模块是单例的,导致所有其他 redux 实例被初始化的时候都读取了被修改的数据……所以用户数据也被共享了。 为了避免同样的问题再出现,应该把 defaultUserState 的所有属性标记为 readonly,这样 TypeScript 就可以检查出是否存在对其的更改了。

keyboard_arrow_down
关于每个人访问都是我的事故原因,我有个猜测

Colliot 04/25/2018

难道是因为 express 中间件里变量作用域的问题,导致这段代码中的 cookieStore 实际上是共享的?代码如下: app.get('*', (req, res) => { const tryCookie = req.headers.cookie; if (typeof tryCookie === 'string') { console.log('Middleware: we got cookies', tryCookie); const cookieStore: {

 [key: string]: string

} = {}; const cookiesArr = tryCookie.split(';'); for (const cookie of cookiesArr) { const cookieArr = cookie.split('='); cookieStore[cookieArr[0].trim()] = cookieArr[1].trim(); } const token = cookieStore['eliseos:token'] || null; // ... } // ... 怎么有一种我这么久 express 白写了的感觉……

keyboard_arrow_down
IntelliJ 系列的「逐驼峰部件」能不能应用到补全上?

Colliot 04/24/2018

qlbf 给我设置了逐驼峰移动,比如 thisIsAThing,用 Option + 方向键移动,会按照 this, Is, A, Thing 的阶段移动,而不是像以前一样单词作为一个整体。 但是补全目前似乎还不会受到智能照顾,比如我光标放在 thisIsAThing 的 AT 中间,把 A 删掉,它补全先出现的可能是 thisIsAnAnimal,而不是 thisIsAThing,尽管我后面的 Thing 已经存在了。

keyboard_arrow_down

Latest Replies

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

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

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

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

Colliot replied to 在 TypeScript 中提取两个类型的公共属性

fdasfasdfasdasfdsfasdfasdfsdfagfdsgsfdgsfdgsfdgsfdsfdsfdg

zuozijian3720 replied to 在 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 replied to 在 TypeScript 中提取两个类型的公共属性

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

Colliot replied to 在 TypeScript 中提取两个类型的公共属性

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

zuozijian3720 replied to 在 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;

/

sarasa replied to 关于每个人访问都是我的事故原因,我有个猜测

什么鬼什么鬼什么鬼什么鬼

sarasa replied to IntelliJ 系列的「逐驼峰部件」能不能应用到补全上?

别说了,CLion和Goland成天给你补全一堆shi出来。

Colliot replied to IntelliJ 系列的「逐驼峰部件」能不能应用到补全上?

我平时就是这么用的,但是这并不符合我提出的要求

Home

Babel

Knowledge

Epistemology

Settings