小编mya*_*sev的帖子

检查变量是否是打字稿联合中的特定接口类型

是否可以创建一个typeguard或其他完成相同目的的东西来检查变量是否是打字稿联合中的特定接口类型?

interface Foo { a:string }
interface Bar { b:string }

(function() {
    function doStuff(thing: Foo | Bar) {
        if(typeof thing === 'Foo') {
            console.log('Foo');
        } 
        else if (typeof thing === 'Bar') {
            console.log('Bar');
        }
        else {
            console.log('unknown');
        }
    }

    var thing: Foo = {a:'a'};
    doStuff(thing);
})();
Run Code Online (Sandbox Code Playgroud)

typescript typescript1.4

10
推荐指数
2
解决办法
4943
查看次数

返回promise的TypeScript属性 - Get/Set访问器必须具有相同的类型

为什么TypeScript强制Get/Set访问器具有相同的类型?假设我想拥有一个返回承诺的属性.

module App {
    export interface MyInterface {
        foo: ng.IPromise<IStuff>;
    }

    export interface IStuff {
        bar: string;
        baz: number;
    }

    class MyClass implements MyInterface {
        private _fooDeferred: ng.IDeferred<IStuff>;

        constructor(private $q: ng.IQService) {
            this._fooDeferred = this.$q.defer();
        }

        get foo(): ng.IPromise<IStuff> {
            return this._fooDeferred.promise;
        }

        set foo(value: IStuff) {
            this._fooDeferred.resolve(value);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

"获取"和"设置"访问器必须具有相同的类型才会是来自TypeScript的错误消息.

修复方法是键入任何访问器,但是我们正在失去静态类型的优点,并且可能只是编写JS.

        get foo(): any {
            return this._fooDeferred.promise;
        }

        set foo(value: any) {
            this._fooDeferred.resolve(value);
        }
Run Code Online (Sandbox Code Playgroud)

angularjs typescript

9
推荐指数
1
解决办法
5481
查看次数

如何在响应网格中制作固定列?

使用Bootstrap,是否可以为某些断点保持网格列固定?并且为同一列堆叠并与其他断点的页面一起流动?

在下面的示例中,对于大屏幕,我希望右列中的内容在左列保持固定时滚动.对于小屏幕,左列应叠加在右侧,页面应正常滚动.

<div class="container-fluid">
  <div class="row">
    <div class="col-lg-2">
      I want this to always be visible as the right side scrolls.
    </div>
    <div class="col">
    ...
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CodePen示例

html css bootstrap-4

6
推荐指数
1
解决办法
8371
查看次数

insort_left 和 insort_right 在 bisect 中有什么区别?

为什么都insort_leftinsort_right存在; 由于元素相等,结果不总是相同的吗?

>>> import bisect
>>> foo = [1,2,3]
>>> 
>>> bisect.insort_left(foo, 1)
>>> foo
[1, 1, 2, 3]
>>> 
>>> bisect.insort_right(foo, 1)
>>> foo
[1, 1, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
2
解决办法
89
查看次数

使用Mockito进行单元测试时,避免使用最终方法?

Mockito不允许嘲笑最终方法.在代码中使用最终方法被认为是不好的做法吗?为什么?

我不想仅仅为了使测试代码工作而改变实现细节,但是,测试框架通常会有这些规则来鼓励更好的编码实践.

java unit-testing mockito

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

从PostreSQL查询整数数组总是返回[] uint8

使用带整数数组的简单PostreSQL数据库:

CREATE TABLE foo (
    id                       serial PRIMARY KEY,
    bar               integer[]
);

INSERT INTO foo VALUES(DEFAULT, '{1234567, 20, 30, 40}');
Run Code Online (Sandbox Code Playgroud)

使用pq,这些值由于某种原因被检索为[] uint8的数组.
文件说,整数类型为Int64的返回.这不适用于数组吗?

db, err := sql.Open("postgres", "user=a_user password=your_pwd dbname=blah")
if err != nil {
    fmt.Println(err)
}

var ret []int
err = db.QueryRow("SELECT bar FROM foo WHERE id=$1", 1).Scan(&ret)
if err != nil {
    fmt.Println(err)
}

fmt.Println(ret)
Run Code Online (Sandbox Code Playgroud)

输出:

sql: Scan error on column index 0: unsupported Scan, storing driver.Value type []uint8 into type *[]int64
[]
Run Code Online (Sandbox Code Playgroud)

go pq

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

传递给方法的联合类型值无法调用

以下代码将产生错误:无法调用其类型缺少调用签名的表达式.

如果接口相同(例如都包含'a'),一切正常.为什么?

interface Foo { a:string }
interface Bar { b:string }

var stuff: Foo[] | Bar[];

function doStuff(thing: Foo | Bar) {
    var index = stuff.indexOf(thing);
}
Run Code Online (Sandbox Code Playgroud)

typescript typescript1.4

0
推荐指数
1
解决办法
167
查看次数