gpt4 book ai didi

javascript - 引用错误: SomeName is not defined (exposing class in Haxe)

转载 作者:行者123 更新时间:2023-12-03 12:11:53 25 4
gpt4 key购买 nike

我是 Haxe 的初学者。我尝试过FizzBu​​zz TDD。我使用了 Mochaexpect.js。我通过 @:expose("SomeName") 公开了 Haxe 类,以便可以从测试中看到。

但是,测试找不到 FizzBu​​zz 类。

FizzBu​​zz.hx

package ;

@:expose("SomeName")
class FizzBuzz{

public function new() {

}

public function put(n : Int) : String {
if (n == 3) {
return "Fizz";
}
else {
return Std.string(n);
}
}
}

Main.hx

package ;

import js.Lib;

class Main {

static function main() {
var f = new FizzBuzz();
for (i in 1...100) {
f.put(i);
}

}

}

fizzbuzz.js

(function ($hx_exports) { "use strict";
var FizzBuzz = $hx_exports.SomeName = function() {
};
FizzBuzz.prototype = {
put: function(n) {
if(n == 3) return "Fizz"; else if(n == null) return "null"; else return "" + n;
}
};
var Main = function() { };
Main.main = function() {
var f = new FizzBuzz();
var _g = 1;
while(_g < 100) {
var i = _g++;
f.put(i);
}
};
Main.main();
})(typeof window != "undefined" ? window : exports);

fizzbuzztest.coffee

expect = require 'expect.js'
fizzbuzz = require '../bin/fizzbuzz.js'

describe 'fizzbuzz', ->
it 'put Fizz when 3 is given', ->
f = new SomeName()
result = f.put(3)
expect(result).to.be(3)

错误消息

fizzbuzz put Fizz when 3 is given
✘ failed
ReferenceError: SomeName is not defined

如何从测试代码中找到 FizzBu​​zz 类?感谢您的帮助。

最佳答案

fizzbuzz = require '../bin/fizzbuzz.js'

SomeName 已导出到您的导出中,因此它当前位于 fizzbuzz.SomeName 中,当然没有名为 SomeName 的变量(所以它告诉您)。

实际上,你的问题与haxe无关,只是你编写的coffeescript代码不正确,它也不适用于任何原生js模块。

关于javascript - 引用错误: SomeName is not defined (exposing class in Haxe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com