小编lef*_*ick的帖子

如何在以下情况下实现单例模式?

const instance = Symbol('instance');

class Parent {
    number;

    constructor() {
        const Class = this.constructor;

        if (!Class[instance]) Class[instance] = this;
        return Class[instance];
    }

    set_number (number) {
        this.number = number;
    }
}

class Child extends Parent {
    test () { }
}

class Child2 extends Parent {
    test () { }
}

const child = new Child();
const parent = new Parent();
const child2 = new Child2();

child.set_number(1);
child.test();

child2.set_number(2);
child2.test(); // child2.test is not a function

parent.set_number(3);

console.log(child.number); // output : …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

5
推荐指数
1
解决办法
79
查看次数

如何声明一个模块来进行命名导入?

我正在使用graphql-tag。我的文件就是这样的。

./操作.graphql

Query User {
   ...
}
Run Code Online (Sandbox Code Playgroud)

./测试.ts

import { User } from './operation.graphql'; /// Module ''*.graphql'' has no exported member 'User'.
Run Code Online (Sandbox Code Playgroud)

./index.d.ts

declare module '*.graphql' {
    import { DocumentNode } from 'graphql';

    const value:DocumentNode;

    export default value;
}
Run Code Online (Sandbox Code Playgroud)

应用程序运行良好,但我想防止该错误。

当我执行默认导入时效果很好,但正如您所见,我在命名导入时遇到错误。

如何声明这一点?谢谢。:)

module typescript graphql graphql-tag

5
推荐指数
1
解决办法
1526
查看次数

如何在返回数组的 return 语句中使用三元运算符

我使用React 16.0。

我想有条件地返回一个元素,如下所示。

import React from 'react';

export default class App extends React.PureComponent {
    render () {
        return [
            <div className="a"></div>,
            {condition ? <div className="b"></div> : null},
            {condition ? <div className="c"></div> : null}
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在 return 语句之外不需要任何额外的方法或条件语句来做到这一点?

感谢您的阅读。

javascript arrays return reactjs

4
推荐指数
1
解决办法
4638
查看次数

TypeScript 无法推断删除运算符和扩展运算符?

interface Test {
    a: string;
    b: number;
    c: number;
}

const test = {
    a: 'a',
    b: 1,
    d: []
};

delete test.d;

const test2:Test = { ...test, c:1 };
=> Type '{ a: string; b: number; c: number; d: never[]; }' is not assignable to type 'Test'.
=> Object literal may only specify known properties, and 'd' does not exist in type 'Test'.
Run Code Online (Sandbox Code Playgroud)

我通过删除运算符删除了d属性,但出现了类似的错误。

针对这种情况有办法吗?

typescript

4
推荐指数
1
解决办法
5340
查看次数

如何修复在 redux-saga 中调用 takeEvery() 时发生 TypeScript 错误?

import { createAction, handleActions } from 'redux-actions';
import { delay } from 'redux-saga';
import { all, put, takeEvery } from 'redux-saga/effects';

export const action_creators = {
    get_action_of_set_number: createAction<{ number:number }>('set_number'),
    get_action_of_set_number_async: createAction<{ number:number }>('set_number_async')
};

const state = {
    number: 0
}

function* set_number_async(action: { payload: { number:number } }) {
    yield delay(1000);
    yield put(action_creators.get_action_of_set_number(action.payload));
}

export function* saga(action) {
    yield all([takeEvery('set_number_async', set_number_async)]);
    *** Error message : Argument of type '"set_number_async"' is not assignable
    *** to parameter of type 'Channel<{ …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs redux redux-saga

4
推荐指数
1
解决办法
3177
查看次数

如何检查参数是否传递给C中的函数?

我不知道如何填写句子"如果通过initial_value".我必须使用变量参数吗?它对我来说不太可读,所以我找到了其他方法.

请帮帮我..

int *func (int initial_value) {
    int *number;

    number = malloc(sizeof(int));
    if ("if initial_value is passed") *number = initial_value;
    else scanf("%d", &number);

    return number;
}
Run Code Online (Sandbox Code Playgroud)

c arguments

3
推荐指数
1
解决办法
266
查看次数

如何在javascript中将嵌套集转换为嵌套数组?

有以下数据.

[
    {"no":1, "name":"ELECTRONICS", "depth":0},
    {"no":2, "name":"TELEVISIONS", "depth":1},
    {"no":3, "name":"TUBE", "depth":2},
    {"no":4, "name":"LCD", "depth":2},
    {"no":5, "name":"PLASMA", "depth":2},
    {"no":6, "name":"PORTABLE ELECTRONICS", "depth":1},
    {"no":7, "name":"MP3 PLAYERS", "depth":2},
    {"no":8, "name":"FLASH", "depth":3},
    {"no":9, "name":"CD PLAYERS", "depth":2},
    {"no":10, "name":"2 WAY RADIOS", "depth":2}
]
Run Code Online (Sandbox Code Playgroud)

我想获得如下数据.

[
    {
        "no":1,
        "name":"ELECTRONICS",
        "depth":0,
        "child_nodes":[
            {
                "no":2,
                "name":"TELEVISIONS",
                "depth":1
                "child_nodes":[
                    {
                        "no":3,
                        "name":"TUBE",
                        "depth":2
                    },
                    ...
                ]
            },
            {
                "no":6,
                "name":"PORTABLE ELECTRONICS",
                "depth":1
                "child_nodes":[ ... ]
            }
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我正在递归地尝试它,但它并不好.由于我使用的是babel,因此对javascript的新功能没有很大的限制.如果你有个好主意,请告诉我.谢谢!

javascript arrays nested-sets multidimensional-array depth

2
推荐指数
1
解决办法
275
查看次数

Typescript是否通过排除另一个接口的属性来支持提取的接口?

我想知道它是否具有以下任何功能。我尝试了Google,但找不到。谢谢!

interface Numbers {
    number: number;
    number2: number;
    number3: number;
}

const numbers:Numbers - { number3 } = {
    number: 1,
    number2: 2
};
Run Code Online (Sandbox Code Playgroud)

typescript

2
推荐指数
1
解决办法
456
查看次数