'da bir Moment.js nesne açıklaması nasıl belirtilir Şu anda mevcut bir projeye uygulayarak ve Moment.JS nesneleri olarak işlev parametrelerine açıklama ekleyerek Flow öğreniyorum. Ben Moment.JS nesneler olarak işlev parametreleri açıklama çalıştığınızda AncakAkış
declare class moment$Moment {
static ISO_8601: string;
static (string?: string, format?: string|Array<string>, locale?: string, strict?: bool): moment$Moment;
static (initDate: ?Object|number|Date|Array<number>|moment$Moment|string): moment$Moment;
static unix(seconds: number): moment$Moment;
static utc(): moment$Moment;
...
:
flow-typed Kullanılması ben arıyorum türüne sahip görünmektedir Moment.JS için bir kütüphane tanımını yüklemek başardı Akış onları böyle tanımakta başarısız olur. Aşağıdaki işlevde startDate
ve endDate
Moment.JS tarih nesneleridir.
const filterByDateWhereClause = (startDate: Moment, endDate: Moment): string =>
^^^^^^ identifier `Moment`. Could not resolve name
Akışı ile bu mümkün olabilir mi:
const filterByDateWhereClause = (startDate: Moment, endDate: Moment): string => {...};
Akış aşağıdaki hatayı veriyor? Veya type
'un Moment.JS nesnesi için akış tipi tarafından sağlanan kitaplık tanımındakiyle aynı olması gerekir mi? Bunu libdef oldukça uzun olduğu için yapmamayı tercih ederim. Ben eksik
declare class Moment {
static ISO_8601: string;
static (string?: string, format?: string|Array<string>, locale?: string, strict?: bool): moment$Moment;
static (initDate: ?Object|number|Date|Array<number>|moment$Moment|string): moment$Moment;
static unix(seconds: number): moment$Moment;
static utc(): moment$Moment;
...
const filterByDateWhereClause = (startDate: Moment, endDate: Moment): string => {...};
: Örneğin
?
import moment from 'moment';
class Moment extends moment {}
const filterByDateWhereClause = (startDate: Moment, endDate: Moment): string => {...};
Hala
ilgilenen bu eğer bir Moment.JS ancak nesne açıklama için doğru şekilde bilmek: bu sorunu çözer an nesneden alt sınıf oluşturma gibi
'Moment Moment' benim için çalışmaz, belki de Webpack kullanıyorum çünkü global ad alanı yok mu? İki ithalat yöntemi işe yaradı. – clhenrick
Webpack, akışın nasıl çalıştığı konusunda bir etkisi olmamalıdır - Global türün neden sizin için çalışmadığından emin değilim, ancak sorun değil çünkü gerçekten kullanmamalısınız ... CONTRIBUTING.md içinde akış tipi için doc, libdef yazarlarına global olması gereken önek globals'a şunları bildirir: (https://github.com/flowtype/flow-typed/blob/316320bf2cbc48a9447e053272a5c113e6e26a8c/CONTRIBUTING.md#prefix-global-variables -ne-fiilen-gerçekten-olması-global), bu yüzden zaten bunu kullanmamalı :) –