我正在使用dotenv加载一些运行时的值。我想在值未定义的情况下抛出一个错误。在Typescript中有没有比下面的更好的方法呢? dotenv.config()
if (process.env.USERNAME == undefined) {
throw new Error("USERNAME is undefined")
}
let username:string = process.env.USERNAME
我试着改编,但是遇到了第一个障碍。Property 'created' does not exist on type 'VueConstructor<Vue>'。
下面是我的测试,只是为了验证我的组件确实有一个created钩子:
import {assert} from 'chai';
import MyComponent from '../src/components/MyComponent.vue';
it('has a created hook', function() {
asser
尝试用TypeScript编写一个简单的测试:
describe('client end to end', function(): void {
it('should display correct title in browser', async function(): Promise<void> {
assert.strictEqual(cy.title(), 'something');
});
});
获取'something'上的错误
Argument of type '
我正在尝试创建一个这样的函数: function assert<T>(condition: T, msg?: string): T & asserts condition {
if (!condition) {
throw new Error(msg)
}
return condition
} 这样做的目的是返回未经修改的condition,保留其类型,但也通知编译器返回值为真。这将允许它作为独立的语句使用,但也可以在表达式中不显眼地使用: const success: bool = true
// ... some code that might s
在JS中,我的许多模块只是包装静态函数、枚举和属性的对象。例如,我有一个类似于此的模块Debug (我真的简化了它):
export default Debug = {
// Current mode set, enum value from Modes. Setted outside of the module (see below).
mode : null,
// Enum of all possible modes
Modes : {
DEV : 0,
PROD : 1,
},
// getter, c
我正在尝试使用Mocha和Chai编写测试文件,但Chai库似乎不想工作。我肯定做错了什么,但我不明白在哪里。 这是代码 function byte() {}
describe("byteToSignedShort()", function()
{
context("in b argument with the first bit set to 1", function()
{
it("should return a negative number", function()
{
a
我试图用Typescript编写一个映射对象的函数,同时保证它保持相同的键。我尝试过各种方法来解决这个问题,但是还没有找到一种行之有效的方法:
function mapObject1<K extends PropertyKey, A, B>(
object: { [P in K]: A },
mapper: (value: A) => B,
): { [P in K]: B } {
return Object.fromEntries(
Object.entries(object)
.map(([key, value]): [K, B] =>
我正试图在React中构建一个组件库,并且我正在使用Rollup将其捆绑在一起。这是我第一次使用它,我看了几个教程并遵循了它们的设置(比如)。这是我的rollup.config.js文件:
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import typescript from "@rollup/plugin-typescript";
import dts from "rollup-pl
如何在参数中使用带有promise的typescript中的assert.reject?
下面是我的代码:
import { assert } from "chai";
import { suite, test, timeout, slow } from "mocha-typescript";
import "mocha";
import { car } from "./Car"; // module that run your function
let carVIN: string = "1234567890"
我刚开始使用Typescript,我找不到任何有用的方法来解决这个错误: error TS2775: Assertions require every name in the call target to be declared with an explicit type annotation. 我使用了一个非常简单的用例 import * as assert from 'assert'
import someFunction from './someFunction.js'
function test() {
assert.strict.equal(s
我不知道如何恰当地描述这一点,所以让我举个例子。我有一个库,它返回一个函数作为构造函数:
var userTemplate = lib.User;
var user = new userTemplate();
我希望将此userTemplate强类型化为一个类,因为我知道它将具有哪些属性。我还希望能够在应用程序的其他部分执行var user = new userTemplate()之类的操作,并使user对象具有某种已知类型。
我觉得我需要在这里使用环境类声明,但我不确定如何将环境声明指定为对实际构建器的引用?
例如,我想要这样的内容:
export class Storage{
in
这里发生了奇怪的事情,在VSCode版本1.21的TypeScript 2.7.2中,带有@types/express和随后的代码,在某些情况下,VSCode抛出错误,声明“无法调用或构造命名空间样式的导入,并且将导致运行时失败”。但是,在具有类似设置和类似tsconfig.json文件的其他计算机上,代码可以正常工作。这里发生了什么:
import { Bank } from './Bank';
import * as Express from 'express'; <== errors here..
let app: Express.Express
在切换到用于Angular2包管理的jspm (而不是使用脚本标记)之后,我有一些不能加载的包。它似乎是在根目录: jspm中查找它们,而不是在config.js中指定的位置。
Failed to load resource: the server responded with a status of 404 (Not Found)
Error: XHR error (404 Not Found) loading http://localhost:55707/zone.js(…)
http://localhost:55707/reflect-metadata.js Failed to load
我对typescript泛型有个问题:
function isString(a: any): a is string {
return typeof a === 'string'
}
function concat<T extends string | number>(a: T, b: T): T {
if (isString(a) && isString(b)) {
return a.concat(b)
}
return a + b
}
游乐场url: https://www.typescriptl
对于mocha中的单元测试和typescript中的Sinon,我得到了一个断言失败的测试。bar -是真正的Sinon存根,但它在任何时候都没有被调用。下面是一个链接,tormozz48用户问我在typescript中遇到了同样的问题。
这里的问题是它无法从另一个模块获得导入的类方法,所以我所做的导出为
class Foo(){
}
export default new Foo()
并将其导入到另一个模块中,如
import * as foo from 'foo.ts'
现在我可以像上面的导出一样清除Sinon了。我的问题是,我做的是正确的方式吗?导出类的实例是不是更好