小编kin*_*aro的帖子

如何在TypeScript中导入package.json?

我正在尝试在TypeScript中导入我的package.json文件,它似乎不起作用.具体来说,我只是尝试导入它,以便我可以访问日志语句的名称和版本属性.就像是:

import * as pjson from '../package.json';
// other code here
log.info(`${pjson.name}:${pjson.version}` started on port ...);
Run Code Online (Sandbox Code Playgroud)

我们在其他使用Node/Babel的项目中使用相同的语法,但我试图在这些部分周围引入一些TypeScript.在其他地方,我们会做类似的事情:

import { name, version} from '../package.json';
Run Code Online (Sandbox Code Playgroud)

然而,这在这里不起作用.我按照https://www.npmjs.com/package/json-d-ts上的说明操作,这至少使我的import语句出错,但现在当我尝试访问属性时,我收到以下错误:

src/index.ts(20,21): error TS2339: Property 'name' does not exist on type 'typeof import("*.json")'.
src/index.ts(20,35): error TS2339: Property 'version' does not exist on type 'typeof import("*.json")'.
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,或者我只是必须在某处硬编码这些值(而不是从package.json中动态检索它们)?也许我可以用import("*.json")某种方式声明一个类型,并在其上定义这些属性?

json typescript

8
推荐指数
5
解决办法
9074
查看次数

如何在下面的上下文中使用javascript中的'this'来获取函数的返回值

嗨,我正在尝试调用一个JSON中属性值的函数.

在不同场景中获得不同的结果

var x = 3;
var foo = {
    x: 2,
    inner: {
        x: 1,
        reValue: function() {
            return this.x
        }
    }
}

var go = foo.inner.reValue;
Run Code Online (Sandbox Code Playgroud)

情况1:

console.log(go()) // 3
Run Code Online (Sandbox Code Playgroud)

案例2:

console.log(foo.inner.reValue()) // 1
Run Code Online (Sandbox Code Playgroud)

谁能解释案例1?

javascript json var function this

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

在Windows 8上通过luarocks安装moonscript

当我尝试通过luarocks安装moonscript时,进程在安装moonscript的依赖项时出错,并说"cl"不是已安装/识别的程序.

C:\Users\Kingdaro>luarocks install moonscript
Installing http://luarocks.org/repositories/rocks/moonscript-0.2.4-1.src.rock...


Missing dependencies for moonscript:
lpeg >= 0.10, ~= 0.11
alt-getopt >= 0.7


7-Zip 9.10 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-12-22

Processing archive: lpeg-0.12.tar.gz

Extracting  lpeg-0.12.tar

Everything is Ok

Size:       245760
Compressed: 66649

7-Zip 9.10 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-12-22

Processing archive: lpeg-0.12.tar

Extracting  lpeg-0.12
Extracting  lpeg-0.12\makefile
Extracting  lpeg-0.12\HISTORY
Extracting  lpeg-0.12\test.lua
Extracting  lpeg-0.12\re.lua
Extracting  lpeg-0.12\lpeg.html
Extracting  lpeg-0.12\re.html
Extracting  lpeg-0.12\lpeg-128.gif
Extracting  lpeg-0.12\lptypes.h
Extracting  lpeg-0.12\lpcap.h
Extracting  lpeg-0.12\lpcap.c
Extracting  lpeg-0.12\lpcode.h
Extracting  lpeg-0.12\lpcode.c
Extracting  lpeg-0.12\lpprint.h
Extracting …
Run Code Online (Sandbox Code Playgroud)

lua luarocks lpeg moonscript

3
推荐指数
1
解决办法
1222
查看次数

moonscript类的Lua输出是MASSIVE

我希望能够使用MoonScriptComputerCraft制作一个程序,但由于CC的沙盒方式可以防止Minecraft服务器上的安全问题,我不能直接要求moonscript并从那里运行moonscript代码.我必须将我的moonscript代码转换为lua.

然而,这是有问题的,因为moonscript的类实现非常大,并且不是非常文件化保守的.当我输入"class Bacon"时,它会为lua输出:

local Bacon
do
  local _parent_0 = nil
  local _base_0 = { }
  _base_0.__index = _base_0
  if _parent_0 then
    setmetatable(_base_0, _parent_0.__base)
  end
  local _class_0 = setmetatable({
    __init = function(self, ...)
      if _parent_0 then
        return _parent_0.__init(self, ...)
      end
    end,
    __base = _base_0,
    __name = "Bacon",
    __parent = _parent_0
  }, {
    __index = function(cls, name)
      local val = rawget(_base_0, name)
      if val == nil and _parent_0 then
        return _parent_0[name]
      else
        return val
      end
    end,
    __call = …
Run Code Online (Sandbox Code Playgroud)

lua moonscript

0
推荐指数
1
解决办法
1711
查看次数

标签 统计

json ×2

lua ×2

moonscript ×2

function ×1

javascript ×1

lpeg ×1

luarocks ×1

this ×1

typescript ×1

var ×1