javascript对象的一个常见用例是将它们用作键值存储...有点像字典:
var dictionary = {},
value;
dictionary['key a'] = 99;
dictionary['key b'] = 12;
value = dictionary['key a']; // 99
Run Code Online (Sandbox Code Playgroud)
可以通过声明这样的接口来添加typescript intellisense goodness:
interface IIndexable<T> {
[s: string]: T;
}
Run Code Online (Sandbox Code Playgroud)
并使用这样的界面:
var dictionary: IIndexable<number> = {},
value: number;
dictionary['key a'] = 99;
dictionary['key b'] = 'test'; // compiler error: "cannot convert string to number"
var x = dictionary['key a']; // intellisense: "x" is treated like a number instead of "any".
Run Code Online (Sandbox Code Playgroud)
这是我的问题:是否可以声明此接口的独立版本:
interface StackOverflow {
questions: IIndexable<number>;
}
Run Code Online (Sandbox Code Playgroud)
即不使用IIndexable?
我尝试过这样的事情,但它没有编译: …
我从Aurelia开发的标准TypeScript骨架开始.
我想在"nav-bar"组件中添加一些代码,因此我决定将其从简单的HTML组件转换为常规组件.为此,我修改了app.html中的require标记:
<require from="nav-bar.html"></require>
Run Code Online (Sandbox Code Playgroud)
至
<require from="nav-bar"></require>
Run Code Online (Sandbox Code Playgroud)
接下来,我创建了一个nav-bar.ts文件,其中包含以下代码:
import {autoinject} from 'aurelia-framework';
import {customElement, bindable} from 'aurelia-framework';
// import {HttpClient} from 'aurelia-fetch-client';
@autoinject
@customElement('nav-bar')
export class NavBarClass {
public attached() {
console.log("TEST");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我完全按照原样离开了nav-bar.html.现在程序运行并且控制台包含来自实例化的NavBarClass的TEST值,但是当导航栏仅为HTML时,以前显示的菜单现在已经丢失.
如何获取菜单?我究竟做错了什么?常规组件与仅HTML组件有何不同?
谢谢你的帮助,-Greg
main当无效/不必要时,如何告诉webpack忽略package.json 的属性?
这是一个示例:GitHub的octicons包具有main的readme.md:
{
"name": "octicons",
"version": "3.5.0",
"description": "GitHub's icon font",
"main": "README.md", <-------------------------------------
"repository": {
"type": "git",
"url": "https://github.com/github/octicons.git"
},
...
}
Run Code Online (Sandbox Code Playgroud)
https://github.com/github/octicons/blob/master/package.json#L5
导致此错误:
ERROR in ./~/octicons/README.md
Module parse failed: C:\repos\foo\node_modules\octicons\README.md Unexpected character '#' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '#' (1:0)
at Parser.pp.raise (C:\repos\foo\node_modules\acorn\dist\acorn.js:920:13)
at Parser.pp.getTokenFromCode (C:\repos\foo\node_modules\acorn\dist\acorn.js:2813:8)
at Parser.pp.readToken (C:\repos\foo\node_modules\acorn\dist\acorn.js:2508:15)
at Parser.pp.nextToken (C:\repos\foo\node_modules\acorn\dist\acorn.js:2500:71)
at Parser.parse (C:\repos\foo\node_modules\acorn\dist\acorn.js:1615:10)
at Object.parse (C:\repos\foo\node_modules\acorn\dist\acorn.js:882:44)
at Parser.parse (C:\repos\foo\node_modules\webpack\lib\Parser.js:902:15)
at DependenciesBlock.<anonymous> (C:\repos\foo\node_modules\webpack\lib\NormalModule.js:104:16)
at DependenciesBlock.onModuleBuild …Run Code Online (Sandbox Code Playgroud) 为了使用库,我需要能够绑定到UL元素的"for"属性.
这不起作用:
<ul for="${id}"> ... </ul>
Run Code Online (Sandbox Code Playgroud)
基于测试我假设这是因为ul元素通常没有for属性.我该如何解决这个问题?这在Durandal/knockout中是微不足道的,我相信它是这样的:
data-bind="attr: { for: $data.id }"
我真的必须创建自定义属性吗?这会与用于的内置属性冲突label吗?还有其他明显的解决方法吗
我想在breeze dataService(客户端)中获取下面提到的自定义属性.
namespace Tam.Framework.Web.Models
{
[ViewAttribute("app/views/Employee.html")]//this custom class attribute
public class Employee : BaseEntity
{
protected override string OnGetDescriptor()
{
return "some description";
}
public string FirstName { get; set; }
[Display(Name = "LAST NAME")]//this custom property attribute
public string LastName { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在谷歌搜索,但似乎找不到在Aurelia应用程序中使用reCAPTCHA的方法。
如果可能,我想将其用作自定义元素。
import {inject, customElement} from 'aurelia-framework';
//maybe from url like https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit
import recaptcha from 'google-recaptcha';
@customElement('captcha')
@inject(recaptcha)
export class Captcha{
constructor(recaptcha){
this.recaptcha = recaptcha;
}
//add code to initialize captcha and handle callback
}
Run Code Online (Sandbox Code Playgroud) aurelia ×3
javascript ×3
attributes ×1
breeze ×1
octicons ×1
recaptcha ×1
typescript ×1
webpack ×1