小编Sta*_*erd的帖子

在 Javascript 中委托函数调用

在 Javascript 中有没有办法像 c# 中的那样有一个委托?

C# 中的示例

Object.onFunctionCall = delegate (vars v) {
    Console.WriteLine("I can do something in this private delegate function");
};
Run Code Online (Sandbox Code Playgroud)

我想用我的 Javascript 让我的主要对象在很长一段时间内做一些事情,并偶尔拍摄一个委托以进行一些更新。所有这一切都无需更改我班级的代码本身即可针对网页进行调整。

function mainObject() {
    this.onUpdate = function() { //Potentially the delegate function here
    }
}

var a = new mainObject();
a.onUpdate = Delegate {
      $(".myText").text("Just got a delegate update");
} 
Run Code Online (Sandbox Code Playgroud)

我不知道这是否足够清楚..还没有找到这方面的资源,所以我想没有办法这样做吗?

注意:我不是在这里研究 jquery Click 委托事件,而是委托一个函数调用,就像它在 c# 中的工作方式一样

让我知道

javascript delegates

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

Typescript2 路径模块解析

tl;dr:模块分辨率不适用?

你好,

我正在玩 Typescript2 模块解析功能。

我注意到现在可以指定“路径”,以便您可以执行以下操作:

老办法

import {a} from "../../../foo"
Run Code Online (Sandbox Code Playgroud)

新方法

import {a} from "services/foo"
Run Code Online (Sandbox Code Playgroud)

为此,您需要在 tsconfig.json 中添加一些配置

    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "services/*": ["./application/core/services/*"],
        }
    }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,编译时,导入实际上并没有改变。我的 javascript 输出仍然包含从“services/foo”导入的内容,因此在我的节点服务器上运行时显然会崩溃。

我使用 gulp-typescript 来编译我的 javascript 文件:

var tsProject = ts.createProject("tsconfig.json");
return tsProject.src()
    .pipe(sourcemaps.init())
    .pipe(tsProject()).js
    .pipe(sourcemaps.write("../api"))
    .pipe(gulp.dest(function(file) {
        return file.base;
}));
Run Code Online (Sandbox Code Playgroud)

我完全迷失在这里,很想使用那个模块分辨率,这样我就可以摆脱 ../../ 地狱的进口。任何帮助将不胜感激!

node.js typescript gulp gulp-typescript typescript2.0

5
推荐指数
1
解决办法
6944
查看次数

跨节点项目共享通用打字稿代码

假设我有以下项目结构:

  • 网络应用程序
    • 项目A
      • SomeClass.ts
      • 包.json
    • 项目B
      • SomeClass.ts
      • 包.json
    • 常见的
      • 日志类.ts
      • 包.json

Common "LoggingClass" 需要从 NPM 导入一个模块。让我们假设模块是 UUID ( https://www.npmjs.com/package/uuid )

问题或挑战如下:我们希望在 ProjectA 和 ProjectB 中使用并导入“LoggingClass”。

事实是,他们可以毫无问题地从公共文件夹导入代码,但是这些项目中不存在模块“UUID”,因为我们没有在他们自己的Package.json 中指定。

我不想创建实际的节点模块,因为我的代码需要检入 git 存储库。(有人建议直接开发到node_modules目录下)。

我想知道社区中的其他打字稿开发人员在使用 npm 时如何分享他们的代码。(如果它只是打字稿文件,那不会有问题,但由于我们对 npm 的依赖......它变得复杂了)。

任何想法将不胜感激!

javascript shared-libraries node.js npm typescript

5
推荐指数
1
解决办法
722
查看次数