【[TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts)】教程文章相关的互联网学习教程文章

javascript-是否允许TypeScript中的另一个字段初始化字段?【代码】

我正在尝试在TypeScript类中执行此操作:private _errorHappened = new Subject<SomeError>(); public errorHappened = this._errorHappened.asObservable();我在另一个字段的内联初始化期间使用字段的值.提供的示例有效,如果我翻转这两行的顺序,则会抛出无法读取未定义错误的属性“ asObservable”.这使我认为解析器自上而下地处理类声明,并且如果您引用上面已经定义的字段,那么一切都很好. 我的问题是:这种行为可以信任吗?我的...

在Typescript中,您如何区分Node和vanilla Javascript错误类型?【代码】

我有以下功能:/*** Retrieves a component template from filesystem*/ const getComponentTemplate = async (p: string ): Promise<string> => {let template: stringtry {template = await fs.readFile(p, {encoding: 'utf8'})} catch (e) {if (e instanceof Error && e.code === 'ENOENT') {throw new Error(`template for element type ${elementType} not found`)}throw e}return template }打字稿在这里抱怨: [ts]“错误”...

typeScript与JavaScript 数据类型【代码】

JS 数据类型 JS数据类型:JS的基本类型和引用类型有哪些呢? 基本类型(单类型):除Object。 String、Number、boolean、null、undefined symbol、bigInt 引用类型:object。里面包含的 function、Array、Date。 ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。 谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个...

javascript – TypeScript – 从对象创建联合【代码】

我正在使用typescript创建一个EventEmitter,我无法找到一种方法来执行以下操作: 说我有这样的界面:interface EventEmitterSubscription { dispose(): void }// here it is interface EventEmitter<T extends { [key: string]: any }> {onAnyEvent(callback: (event: { type: ???, payload: ??? }) => void): EventEmitterSubscription// ... }我找不到一种方法来输入onAnyEvent回调,例如,对于像这样的eventEmitter:EventEmitter...

javascript – Angular2 / Typescript / ngRx – TypeError:无法分配给对象的只读属性【代码】

在构造函数中,我做了类似的事情selectedDate: Object; // construtor this.selectedDate = {}; this.selectedDate['date'] = new Date(); this.selectedDate['pristine'] = new Date();在按钮单击调用的另一个函数中,我执行以下操作:this.selectedDate['date'] = new Date(this.selectedDate['pristine']);我收到以下错误:TypeError: Cannot assign to read only property ‘date’ of object ‘[object Object]’解决方法:致Rya...

javascript – Typescript中这部分代码的重点是什么?【代码】

我正在阅读Typescript的手册,我注意到(对我而言)代码部分毫无意义.有人可以解释一下这个的目的是什么? 取自docs:class Greeter {static standardGreeting = "Hello, there";greeting: string;greet() {if (this.greeting) {return "Hello, " + this.greeting;}else {return Greeter.standardGreeting;}} }var greeter1: Greeter; greeter1 = new Greeter(); alert(greeter1.greet());var greeterMaker: typeof Greeter = Greeter...

javascript – Typescript:对象到类【代码】

假设我有一个C类和一个Object O实例(来自JSON).class C {str:string;num:number; }var o = JSON.parse ("{\"num\":123, \"str\":\"abc\"}");有没有办法我可以用o分配/初始化一个C的实例,它检查未定义的值以及在复制构造函数/函数中我自己做的类型? 如果值缺失/未定义或类型不匹配,我想得到错误或异常. 谢谢!解决方法:您可以使用Object.assign:class C {str:string;num:number; } var o = JSON.parse("{\"num\":123, \"str\":\"a...

javascript – 使用Typescript强制接口的泛型约束?【代码】

我有2个接口声明:interface IStore { } interface SomethingElse { a: number;}实现每个的2个类:class AppStoreImplemetion implements IStore { }class SomethingImplementation implements SomethingElse{a: 4;}我希望我的方法被赋予返回类型作为“必须是IStore”的约束,所以我这样做:class Foo {selectSync<T extends IStore>( ): T{return <T>{/* omitted*/ }; // I set the return type(`T`) when invoking} }...

如何解决’属性’宽度’在类型’HTMLElement’上不存在.’当使用// @ ts-check在vscode中键入检查Javascript(NOT Typescript)时?【代码】

在view.js文件中:const canvas = document.getElementById('canvas'); ... export {canvas, }; 在main.js文件中:import * as view from '../src/view.js';...xPosition: view.canvas.width / 2,给我’属性’宽度’在类型’HTMLElement’上不存在.类型检查错误. 我不知道如何继续,我对打字稿没有任何了解,而且程序是用javascript编写的.我读过的所有解决方案都需要使用打字稿,这在本例中没用. 我有什么办法可以摆脱这个错误吗? 编...

JavaScript-Typescript:私人成员突然未定义【代码】

因此,我有一个基本的Typescript应用程序,它实际上不会引起任何重大问题,但看来这里出了点问题,我也不知道是什么. 我的GameContainer类中确实有此私有成员minUpdateRate,该类在构造函数中初始化.这样做似乎很顺利,因为调用GameContainer.start()时,console.log()方法将输出1. 但是,当调用GameContainer.render()方法时,似乎超出了范围之类,log方法在那里输出未定义的内容. 我对TypeScript还是很陌生,对JavaScript也没有那么深入(特别...

【面试题】JavaScript不支持函数重载,但TypeScript是否支持函数重载?【代码】

JavaScript不支持函数重载,但TypeScript是否支持函数重载? 解题思路: 是的,TypeScript支持函数重载。但是它的实现很奇怪,当我们在TypeScript中执行函数重载时,我们只能实现一个带有多个签名的函数。 //带有字符串类型参数的函数 function add(a:string, b:string): string; //带有数字类型参数的函数 function add(a:number, b:number): number; //函数定义 function add(a: any, b:any): any { return a + b; ...

javascript – TypeScript中的嵌套对象【代码】

如何在TypeScript中声明像嵌套对象的JavaScript?let endpoints = {auth: {login: "http://localhost:8079/auth/login"} };以下不起作用:private endpoints: Object = {auth: {login: "http://localhost:8079/auth/login"} };抛出: 错误TS2339:“对象”类型上不存在属性“auth”.解决方法:您可以使用接口:interface EndpointAuth {login: string; }interface Endpoint {auth: EndpointAuth; }let endpoints: Endpoint = {auth:...

TypeScript:如何导入ES6 JavaScript类?【代码】

我有一个名为DB的ES6 JavaScript类,定义如下:// db.js "use strict";export default class DB {... }还有一个TypeScript文件,如下所示:// surgeons.ts "use strict";import DB from "./db";我希望这可以正常工作,但是会出现以下错误:Browserify Error { [TypeScript error: app/source/common/surgeons.ts(3,16): Error TS2307: Cannot find module './db'.]message: 'app/source/common/surgeons.ts(3,16): Error TS2307: Cann...

javascript – 使用TypeScript进行Jest模拟【代码】

我有这个简单的测试文件:describe('index', () => {it('should bootstrap the app', async () => {const root = <div />;jest.spyOn(ReactDOM, 'render');...ReactDOM.render.mockImplementationOnce(() => {} );...ReactDOM.render.mockRestore();} ); } );我收到以下打字稿错误:“TS2339:属性’mockImplementationOnce’在’Renderer’类型上不存在” 任何人都知道如何使TypeScript识别jest模拟方法?解决方法:您可以使用type...

javascript-从TypeScript中的重写接口自动推断类型【代码】

我正在尝试为已经存在的模块创建一些TypeScript定义.在要实现的特定接口中,签名如下所示:type NextFunction<T> = () => T; type Response = string[] | Promise<string[]>;interface IPage {getBodyClasses(next: NextFunction<Response>): Response; }参数和返回结构是固定的,我非常希望TypeScript能够推断出我的重写方法的参数类型.但是,当我创建覆盖时,我看到该参数隐式具有任何类型.class Page implements IPage {getBodyClas...