如何在打字稿中的函数中定义函数?

时间:2018-07-19 08:58:25

标签: ios ionic-framework mobile ionic3 hybrid-mobile-app

我了解基本的Javascript,但是在Typescript文件中遇到了问题。我正在使用Ionic框架来测试页面,从理论上讲,用户可以像在Tinder上一样“滑动”,只是为了好玩。

我已经编写了所有JS,因为我将其从Codepen中移了出来,但是我似乎无法摆脱Typescript的语法。

Javascript:

var tinderContainer = document.querySelector('.tinder');
var allCards = document.querySelectorAll('.tinder--card');
var nope = document.getElementById('nope');
var love = document.getElementById('love');

function initCards(card, index) {
  var newCards = document.querySelectorAll('.tinder--card:not(.removed)');

  newCards.forEach(function (card, index) {
    card.style.zIndex = allCards.length - index;
  }
}

打字稿(我使用Google和SOF答案汇总在一起):

export class TestPage {

  constructor(public navCtrl: NavController) {
  }

  tinderContainer = document.querySelector('ion-content');
  allCards = document.querySelector('.tinder--card');
  nope = document.getElementById('nope');
  love = document.getElementById('love');

  declare initCards(card,index) {
    newCards = document.querySelectorAll('.tinder--card:not(.removed)');

    newCards.forEach((card,index)) {
      card.style.zIndex = allCards.length - index;
    }
  } 
}

1 个答案:

答案 0 :(得分:1)

一些提示是: 在函数中使用let newCards,因为必须声明变量。

您的forEach应该是这样的。

newCards.forEach((card, index) => {
    ...    
});

但是要使用 card.style.zIndex allCards.length 这样的语法,声明变量类型。

对于未知模型,您可以使用类似card['style']['zIndex']

此外,您还必须使用this来访问类属性,例如this.allCards