gpt4 book ai didi

dart - 将 TypeScript 转换为 Dart

转载 作者:行者123 更新时间:2023-12-03 02:57:12 24 4
gpt4 key购买 nike

我正在尝试理解一些 typescript ,但主要是使用 Dart。

我看到以下与我正在做的事情相关的示例代码

import {Component} from 'angular2/core';
import {Validators, MaxLengthValidator, Control, ControlGroup} from 'angular2/common';
import {isPresent} from 'angular2/src/facade/lang';
import {bootstrap} from 'angular2/platform/browser';

export class CustomValidators {

static minLengthWithDescription(minLength: number, desc: string): Function {
return (control: modelModule.Control): {[key: string]: any} => {
if (isPresent(Validators.required(control))) return null;
var v: string = control.value;
return v.length < minLength ?
{"minlength": {"requiredLength": minLength, "actualLength": v.length, "desc": desc}} :
null;
};
}
}

我可以理解大部分代码,但下面的代码到底在做什么

return (control: modelModule.Control): {[key: string]: any} =>

懂这两种语言的人可以将这个小类(class)转换为 Dart 吗?

谢谢

最佳答案

主要是关于从右向左移动类型。
我想令人困惑的部分是 {[key: string]: any}我认为这也只是返回函数的返回类型。我猜它翻译成 Map<String,dynamic>但是目前无论如何都无法在 Dart 中为闭包添加返回类型注释。解决方法是创建一个 typedef

typedef Map<String,dynamic> SomeFunc(modelModule.Control control);

class CustomValidators {

static SomeFunc minLengthWithDescription(int minLength, String desc) {
return (modelModule.Control control) {
if (isPresent(Validators.required(control))) return null;
String v = control.value;
return v.length < minLength ?
{"minlength": {"requiredLength": minLength, "actualLength": v.length, "desc": desc}} :
null;
};
}
}

我无法推导出什么 modelModule.来自您提供的代码,但我想它是一些命名空间或嵌套范围来引用类 Control .

关于dart - 将 TypeScript 转换为 Dart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145795/

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