假设我有一个名为abc.js具有功能的文件xyz().我想在我的Angular 4项目中调用该函数.我该怎么办?
在TypeScript中,创建.d.ts源声明文件时,哪个更好?为什么?
declare class Example {
public Method(): void;
}
Run Code Online (Sandbox Code Playgroud)
要么
interface Example {
Method(): void;
}
Run Code Online (Sandbox Code Playgroud)
我可以说的差异是接口不能有静态方法,所以你必须使用一个类.两者都没有产生任何JS输出,所以也许没关系?
有没有一种方便的方法可以在模块中访问全局变量,没有编译器错误,即下面使用的CANVAS_WIDTH?
export class Bullet {
x: number = 22;
y: number = 22;
constructor (speed: number) {
this.xVelocity = speed;
}
inBounds() {
return this.x >= 0 && this.x <= CANVAS_WIDTH &&
this.y >= 0 && this.y <= CANVAS_HEIGHT;
};
}
}
Run Code Online (Sandbox Code Playgroud) 每当tsc生成d.ts文件时,它都会包含declare单词,如下所示:
export declare class Moment {
name: string;
}
Run Code Online (Sandbox Code Playgroud)
现在,declarein tsfiles 用于表示tsc不js应该为带有declare. 所以它在ts文件中是有意义的。然而,无论如何,nojs都是从d.ts文件生成的,为什么要在那里使用这个词呢?
我尝试declare从上面的代码中删除单词:
export class Moment {
name: string;
}
Run Code Online (Sandbox Code Playgroud)
效果是一样的。
我在这里找到了以下内容:
如果文件的扩展名为 .d.ts,则每个根级别定义都必须在其前面添加声明关键字。这有助于让作者清楚地知道 TypeScript 不会发出任何代码。作者需要确保声明的项在运行时存在。
declare那么这是in文件的唯一目的吗d.ts?
请注意,这与这个问题不是同一个问题,因为我的问题是关于declare在d.ts文件中使用,而不是ts文件。
我创建了我自己的需要加密的hash.js文件,并导出了两个使用加密的函数。当我对密码进行哈希处理时,它在我的api.js文件中工作正常。但是,现在我试图将此文件导入到user.service.ts文件中,以便可以将密码的哈希版本作为查询参数而不是密码本身发送。当我尝试这样做时,我总是收到TypeScript错误,告诉我crypto使用的函数不是函数。但是,我仍然可以控制台日志记录导入的对象,对我来说它看起来合法。我查看了node_modules文件夹中的其他Java脚本文件,但看不到任何文件错误。
我还发现似乎需要创建一些定义文件,但是我也曾尝试过创建这样的文件,但似乎无济于事
几个小时的谷歌搜索以及对该项目的时间不足导致的知识不足,这使我成为了这篇文章,这是我的第一个stackoverflow帖子,我希望它不会不清楚,我很高兴提供任何需要的信息来帮助我解决此问题。
LoginComponent.html:18 ERROR TypeError: crypto.randomBytes is not a function
at Object.genRandomString (hash.js:12)
at UserService.loginUser (user.service.ts:82)
at LoginComponent.getUser (login.component.ts:54)
at LoginComponent.onSubmit (login.component.ts:44)
at Object.eval [as handleEvent] (LoginComponent.html:18)
at handleEvent (core.es5.js:12014)
at callWithDebugContext (core.es5.js:13475)
at Object.debugHandleEvent [as handleEvent] (core.es5.js:13063)
at dispatchEvent (core.es5.js:8607)
at core.es5.js:10775
LoginComponent.html:18 ERROR CONTEXT DebugContext_ {view: {…}, nodeIndex: 31, nodeDef: {…}, elDef: {…}, elView: {…}}
Run Code Online (Sandbox Code Playgroud)
hash.js文件
'use strict';
var crypto = require('crypto');
/**
* generates random string of characters i.e salt
* @function
* @param {number} …Run Code Online (Sandbox Code Playgroud) 我正在学习打字稿。在研究某些源文件时,我发现声明文件中有时存在export declare ...,有时只是存在。export ....d.ts
经过一些测试,在我看来它们是等效的。没有declare就没有区别。
我知道declare没有需要export。例如,declare var test:any;。
但它是真实的export declare和export等价?
附带的问题:和declare完全不需要吗?在如果我把刚才的文件,则是随处可见没有。这是为什么?interfacetype.d.tsinterface test{}testdeclare
我试图创建一个全局名称空间/函数,我的代码如下所示:abc.ts
declare namespace abc {
export function abc (): xyz {
console.log('Hello');
return xyz(200);
}
}
export = abc
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我如何解决它 ?
我试图在我的Angular 2应用程序中使用Bootstrap 4轮播。具体来说,我正在尝试复制此处完成的全角效果。我到达必须将元素连接到轮播的最后一点:
$('.carousel').carousel({
interval: 6000,
pause: "false"
});Run Code Online (Sandbox Code Playgroud)
尝试编译时,出现以下错误:
错误:类型“ JQuery”上不存在属性“轮播”
我知道有ng-bootstrap组件,但是我无法以这种方式使转盘完全变宽。
这是我的代码(Typescript,CSS,HTML):
import { Component, OnInit } from '@angular/core';
import * as $ from 'jquery';
@Component({
selector: 'app-home-carousel',
templateUrl: './home-carousel.component.html',
styleUrls: ['./home-carousel.component.css']
})
export class HomeCarouselComponent implements OnInit {
constructor() { }
ngOnInit() {
}
setupCarousel(): void {
var $item = $('.carousel .item');
var $wHeight = $(window).height();
$item.eq(0).addClass('active');
$item.height('400px');
$item.addClass('full-screen');
$('.carousel img').each(function() {
var $src = $(this).attr('src');
var $color = $(this).attr('data-color');
$(this).parent().css({
'background-image' : …Run Code Online (Sandbox Code Playgroud)在此nodejs代码中,
declare var process: NodeJS.Process;
declare var global: NodeJS.Global;
declare var console: Console;
declare var __filename: string;
declare var __dirname: string;
Run Code Online (Sandbox Code Playgroud)
那...
'declare var'和'var'有什么区别?
当我查看谷歌搜索时,我得到了运行时一词。
Wiki说运行时是计算机程序运行时的一种操作。
但我听不懂。
第1行,“ process”之后再“ NodeJS.Process”之后的“:”是什么意思?
这是否意味着“进程”等于“ NodeJS.Process”?
还是第4行,在“ __filename”之后然后是“ string”之后,“:”是什么意思?
这是否意味着“ __filename”等于“ string”?
谢谢。