小编Gre*_*res的帖子

打字稿编译器bug?knockout.validation.d.ts不再编译

我只是将typescript从v2.3升级到v2.4,现在它在knockout.validation.d.ts行上给出了一个错误:

interface KnockoutSubscribableFunctions<T> {
    isValid: KnockoutComputed<boolean>;
    isValidating: KnockoutObservable<boolean>;
    rules: KnockoutObservableArray<KnockoutValidationRule>;
    isModified: KnockoutObservable<boolean>;
    error: KnockoutComputed<string>;
    setError(error: string): void;
    clearError(): void;
}
Run Code Online (Sandbox Code Playgroud)

这里knockout.validation试图表明KnockoutSubscribableFunction现在有额外的成员.以下是knockout.d.ts中此接口的定义:

interface KnockoutSubscribableFunctions<T> {
    [key: string]: KnockoutBindingHandler;

    notifySubscribers(valueToWrite?: T, event?: string): void;
}
Run Code Online (Sandbox Code Playgroud)

编译器现在抱怨:

'KnockoutComputed'类型的属性'isValid'不能赋予字符串索引类型'KnockoutBindingHandler'.

我不明白为什么它没有将这些新值视为界面中的新属性?为什么要说他们必须映射到索引签名?该文件似乎表明,你可以在同一个界面中的指数的签名和其他特性.

我把接口的初始定义带到了游乐场,它甚至抱怨notifySubscribers不能分配给KnockoutBindingHandler.

使用新编译器如何编译此代码?

现在有蛮力的方法让这个编译.我正在将knockout.d.ts定义更改为:

interface KnockoutSubscribableFunctions<T> {
    [key: string]: any;//KnockoutBindingHandler;

    notifySubscribers(valueToWrite?: T, event?: string): void;
}
Run Code Online (Sandbox Code Playgroud)

typescript

19
推荐指数
1
解决办法
3747
查看次数

Vue 单元测试:“您正在以开发模式运行 Vue。”?

我知道在你的 jest.setup.js 代码中,你应该设置

Vue.config.productionTip = false;
Vue.config.devtools = false;
Run Code Online (Sandbox Code Playgroud)

我愿意。事实上,这是我的 jest.setup.js 代码。注意 console.log('yo ho');

// test/setup.js

import Vue from 'vue';
import Vuetify from 'vuetify';
import { config } from '@vue/test-utils';
import VueCompositionApi from '@vue/composition-api'; // <-- Make the import

Vue.use(Vuetify);
Vue.use(VueCompositionApi);
Vue.config.productionTip = false;
Vue.config.devtools = false;
console.log('yo ho');
// https://vue-test-utils.vuejs.org/
// and this came from: https://github.com/kazupon/vue-i18n/issues/323
// it mocks out the $t function to return the key so you can test that the right key is being used
config.mocks …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-test-utils

9
推荐指数
2
解决办法
1248
查看次数

如何获得nodatime中两个日期之间的天数

我需要使用NodaTime计算两个日期之间的天数,并在时区中进行计算.

结束时间是基于当天结束时暗示的午夜时间.这个日期是在时区.

开始时间是当前时间,但我将它传递给函数,以便该函数是可测试的.

我尝试使用Period,这似乎是明显的答案,但是Period在一端太过细化(当我们在结束日时)并且当我们超过1个月之后不够精细.

因此,如果现在是美国/多伦多的7月9日,下午5:45,结束时间是9月1日00:00:00,那么我希望能够计算54天.(假设我正确计算了我日历上的天数.:))

我想我自己必须处理子日问题,但当我不得不弄清楚如何处理一个多月的问题时,我感到很惊讶.

是否有明显的方法可以从NodaTime获得两次之间的天数?我使用.Net的DateTime和TimezoneInfo类将它归结为三行代码,但我想转移到NodaTime,原因是网站上指定的所有原因.

谢谢

nodatime

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

标签 统计

nodatime ×1

typescript ×1

vue-test-utils ×1

vue.js ×1